package com.mxw.service;

import com.mxw.entity.Resource;
import com.mxw.model.PageRequest;
import com.mxw.model.PageResult;

public interface ResourceService {
    
    /**
     * 分页查询资源列表
     * @param request 分页请求参数
     * @return 分页结果
     */
    PageResult<Resource> getResourcePage(PageRequest request);

    /**
     * 根据ID获取资源详情
     * @param id 资源ID
     * @return 资源详情
     */
    Resource getResourceById(Integer id);

    /**
     * 获取相关资源推荐
     * @param currentResourceId 当前资源ID
     * @param request 分页请求参数
     * @return 相关资源列表
     */
    PageResult<Resource> getRelatedResources(Integer currentResourceId, PageRequest request);

    /**
     * 检查资源是否已被收藏
     * @param resourceId 资源ID
     * @param userId 用户ID
     * @return 是否已收藏
     */
    boolean isResourceCollected(Integer resourceId, Integer userId);

    /**
     * 收藏资源
     * @param resourceId 资源ID
     * @param userId 用户ID
     */
    void collectResource(Integer resourceId, Integer userId);

    /**
     * 取消收藏资源
     * @param resourceId 资源ID
     * @param userId 用户ID
     */
    void uncollectResource(Integer resourceId, Integer userId);

    /**
     * 获取用户的收藏列表
     * @param userId 用户ID
     * @param request 分页请求参数
     * @return 收藏的资源列表
     */
    PageResult<Resource> getUserCollections(Integer userId, PageRequest request);

    /**
     * 根据标题获取资源详情
     * @param title 资源标题
     * @return 资源详情
     */
    Resource getResourceByTitle(String title);
} 